package com.hospital.register.cmn.client;

import com.hospital.register.common.result.Result;
import com.hospital.register.vo.cmn.DictChildVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.Map;

/**
 * 访问字典数据
 *
 * @author 刘逸晖
 */
@FeignClient(value = "service-cmn")
@Repository
public interface DictFeignClient {

    /**
     * 根据父节点的编号和子节点的值查询对应节点的名称
     *
     * @param dictCode 父节点的编号
     * @param value    子节点的值
     * @return 对应字典的名称
     */
    @GetMapping("/admin/cmn/dict/getName/{dictCode}/{value}")
    public String getName(@PathVariable("dictCode") String dictCode, @PathVariable("value") String value);

    /**
     * 根据值查询字典名称
     *
     * @param value 字典值
     * @return 字典名称
     */
    @GetMapping("/admin/cmn/dict/getName/{value}")
    public String getName(@PathVariable("value") String value);

    /**
     * 根据编号获取子节点的 map 集合
     * key 为子节点的值
     * 异常有字典服务做全局处理
     *
     * @param parentCode 父节点的编号
     * @return 子节点的 map 集合
     */
    @GetMapping("/admin/cmn/dict/findValueMap/{parentCode}")
    public Result<Map<String, DictChildVo>> findValueMap(@PathVariable String parentCode);

}
